148 research outputs found

    Hardware architecture implemented on FPGA for protecting cryptographic keys against side-channel attacks

    Get PDF
    This paper presents a new hardware architecture designed for protecting the key of cryptographic algorithms against attacks by side-channel analysis (SCA). Unlike previous approaches already published, the fortress of the proposed architecture is based on revealing a false key. Such a false key is obtained when the leakage information, related to either the power consumption or the electromagnetic radiation (EM) emitted by the hardware device, is analysed by means of a classical statistical method. In fact, the trace of power consumption (or the EM) does not reveal any significant sign of protection in its behaviour or shape. Experimental results were obtained by using a Virtex 5 FPGA, on which a 128-bit version of the standard AES encryption algorithm was implemented. The architecture could easily be extrapolated to an ASIC device based on standard cell libraries. The system is capable of concealing the real key when various attacks are performed on the AES algorithm, using two statistical methods which are based on correlation, the Welch’s t-test and the difference of means.Peer ReviewedPostprint (author's final draft

    A new countermeasure against side-channel attacks based on hardware-software co-design

    Get PDF
    This paper aims at presenting a new countermeasure against Side-Channel Analysis (SCA) attacks, whose implementation is based on a hardware-software co-design. The hardware architecture consists of a microprocessor, which executes the algorithm using a false key, and a coprocessor that performs several operations that are necessary to retrieve the original text that was encrypted with the real key. The coprocessor hardly affects the power consumption of the device, so that any classical attack based on such power consumption would reveal a false key. Additionally, as the operations carried out by the coprocessor are performed in parallel with the microprocessor, the execution time devoted for encrypting a specific text is not affected by the proposed countermeasure. In order to verify the correctness of our proposal, the system was implemented on a Virtex 5 FPGA. Different SCA attacks were performed on several functions of AES algorithm. Experimental results show in all cases that the system is effectively protected by revealing a false encryption key.Peer ReviewedPreprin

    Co-diseño hardware-software de una unidad en coma flotante para microprocesador de 32 bits

    Get PDF
    El uso de números en coma flotante es muy habitual en la programación software para la resolución de todo tipo de algoritmos. Dada la particular forma de codificar valores en este formato, definida en la norma IEEE 754, realizar operaciones básicas requiere de librerías software específicas y tiempos de proceso considerables para su ejecución. El presente proyecto aporta una solución hardware para la resolución de operaciones aritméticas de números expresados en coma flotante de simple precisión (32 bits). Las operaciones que se realizan son: suma, resta, producto, división, inversa y raíz cuadrada junto con las trigonométricas: seno, coseno y tangente. Estas unidades aritméticas son conocidas como ‘Float Point Unit’(FPU). El diseño de la arquitectura interna de la FPU se describe mediante un lenguaje de descripción hardware (VHDL), de forma modular y con la particularidad de que puede implementarse toda o, únicamente, el bloque que resuelve la operación deseada. La FPU se implementa en una FPGA junto con un sistema basado en microprocesador Microblaze (Xilinx) y bus OPB (IBM), mediante el que se comunican ambos elementos dando lugar a un sistema embebido. De forma complementaria se diseñan la interface y el driver necesarios para la transferencia de información a través del bus de comunicaciones. El conjunto procesa algoritmos de forma que la resolución de operaciones en coma flotante se realiza transfiriendo los datos y la operación a la FPU, que tras un procesado de cálculo retorna el resultado al microprocesador. Una vez puesto el sistema en funcionamiento se mide el tiempo (en ciclos de reloj) que se precisa para resolver cada operación, considerando el tiempo necesario para el acceso al bus OPB. Se compara el tiempo necesario para resolver dichas operaciones por software y con la FPU que el procesador incorpora y se observa la mejora obtenida en cada caso. También se desarrollan dos algoritmos que permiten comprobar la fiabilidad de la FPU, comparando los resultados obtenidos mediante una ejecución puramente software e incorporando la FPU diseñada

    Generación de falsas claves criptográficas como medida de protección frente a ataques por canal lateral

    Get PDF
    In the late 90s, Paul C. Kocher introduced the concept of differential attack focused on the power consumption of a cryptographic device. In this type of analysis the plain text sent to the device is known, and all possible hypotheses of a subset of the key, related to a specific point of the cryptographic algorithm, are tested. If the key value at that point depends only on 1 byte, it is possible to predict the input current based on a theoretical model of power consumption. Thus, using statistic procedures, it is easy to compare the consumption measured during the processing of each plain text and the intermediate values related to all the hypothesis of the key.The one with the highest level of similarity will correspond to the actual key. So far the countermeasures proposed to prevent the success of the attack can be classified into two groups: Masking and Hiding. Masking tries to decouple the processed data and the power consumption by adding a random mask which is unknown by the attacker. Therefore, it is impossible to make a hypothesis that allows the theoretical and the real power consumption of the device to be related. Although is a valid method, the key could be revealed by performing a second-order attack that analyzes several points of the current trace. Hiding aims at making constant the consumption of a device in each clock cycle and independent of the processed data. In order to achieve this objective, the data is processed in double line, in such a way that the datum and its complementary are processed together, so that the same number of transitions always occur on every clock cycle. The weakness of such a method lies on the impossibility of building identical CMOS cells, which causes a minimum difference of consumption between the two lines that can be used successfully to discover the key. This thesis proposes a countermeasure based on a differentiated protection strategy with respect to the proposals made in other specific studies. It is intended to modify the algorithm in order to force a very high correlation with a different hypothesis to the one of the true key (Faking). Thus, the actual key is hidden behind the strong correlation, which is impossible to differentiate from the rest of false assumptions and remains protected. To verify its performance a trial bank has been designed to launch consumption analysis attacks. We have implemented the algorithm AES due to its simplicity and strength. Two types of attacks have been carried out. In the first one, the analysis was performed using both the correlation and the mean difference analysis without including any countermeasure. In the second attack, the proposed countermeasure has been added and the attack was repeated to check its effectiveness. We have evaluated three different situations. First of all, the algorithm and the countermeasure are solved by software on a 32-bit processor. Secondly, the algorithm is executed in software and the implementation of the countermeasure has been performed with a specific hardware coprocessor. Finally, a full hardware implementation including both the algorithm and the countermeasure has been chosen.All of them have been implemented on a Virtex 5 FPGA Xilinx. Several conclusions are obtained from the comparison between each of the AES implementations without countermeasures and their respective solution with the added countermeasure. The obtained results are also compared to other which use "masking" and "hiding" techniques. The results demonstrate that the proposal is valid. In all three cases, the protected system behaves like the unprotected system but returning the false key after the attacks. It should be noted that the amount of resources needed to carry out the "Faking" is less than the "Masking" or "Hiding" and the time needed to process the plain text is not particularly affected.A finales de los 90 Paul C.Kocher introdujo por primera vez el concepto de ataque diferencial sobre el consumo de corriente de un dispositivo criptográfico. En este tipo de análisis, se conoce el texto plano que se envía al dispositivo y se plantean todas las posibles hipótesis de la clave para un punto concreto del algoritmo. Si el valor en ese punto del algoritmo depende únicamente de 1 byte de la clave, es posible calcular todos los valores que se producirán. Llegado a este punto, se compara, por métodos estadísticos, el consumo medido durante el procesado de cada texto plano y los valores intermedios relacionados con todas las hipótesis de la clave. Aquella que mayor nivel de similitud tenga corresponderá con la clave real. Las contramedidas propuestas hasta la fecha, para evitar el éxito del ata-que, pueden separarse en dos grupos: enmascaramiento (Masking) y ocultación (Hiding). El enmascaramiento trata de desvincular el dato procesado del consumo eléctrico mediante la adición de una máscara aleatoria y desconocida por el atacante. En consecuencia, resulta imposible realizar una hipótesis que permita relacionar los consumos teórico y real del dispositivo. Si bien este es un método inicialmente válido, puede descubrirse la clave realizando un ataque de segundo orden que analiza varios puntos del consumo. La ocultación persigue que el consumo de un dispositivo sea el mismo en cada ciclo de reloj e independiente del dato procesado. Para ello, se procesa el dato en doble línea, por un lado el dato propiamente dicho y por el otro su complementario, de forma que siempre se produzcan la misma cantidad de transiciones en cada ciclo de reloj. La debilidad de este método radica en la práctica imposibilidad de construir celdas CMOS idénticas, esto provoca que siempre exista una diferencia de consumo entre las dos líneas y pueda usarse con éxito para descubrir la clave. En esta tesis se propone una contramedida basada en una estrategia de protección claramente diferenciada con respecto a las propuestas realizadas en la bibliografía específica. Se pretende modificar el algoritmo con el objetivo de forzar una correlación muy alta en una hipótesis diferente a la de la clave (Faking). De este modo, la clave real se oculta tras la fuerte correlación aparecida, resulta imposible diferenciarla del resto de hipótesis falsas y queda protegida. Para verificar su funcionamiento se ha montado un banco de pruebas para realizar ataques por análisis de consumo. Se ha implementado el algoritmo AES debido a su simplicidad y robustez. Se han realizado dos tipos de ataques: en el primero se han practicado análisis de correlación y diferencia de medias sin contramedida alguna; en el segundo, se ha añadido la contramedida y se han repetido los ataques para comprobar su eficacia. Se han evaluado 3 escenarios diferentes, primeramente el algoritmo y la contramedida se resuelven mediante software en un procesador de 32 bits. En segundo lugar, el algoritmo se resuelve mediante software y la implementación de la contramedida se ha realizado en un coprocesador hardware específico. Fi-nalmente, se ha elegido una implementación totalmente hardware para resolver tanto el algoritmo como la contramedida. Todos ellos se han implementado sobre una FPGA Virtex5 de Xilinx. Las conclusiones se obtienen de la comparación entre cada una de las im-plementaciones del AES sin contramedidas y su respectiva solución con la con-tramedida añadida. También se comparan los resultados obtenidos con otros que utilizan las técnicas "Masking" y "Hiding" Los resultados demuestran que la propuesta es válida. En los tres casos, el sistema protegido se comporta igual que el sistema sin proteger, pero retornando la clave falsa ante los ataques realizados. Se ha de destacar que, la cantidad de recursos necesarios para llevar a cabo el "Faking" es menor que con el "Masking" o el "Hiding" y el tiempo necesario para procesar el texto plano no se ve particularmente afectado por su inclusión

    Unidad aritmética en coma flotante para sistemas autoreconfigurables dinámicamente sobre Spartan-3 basados en Microblaze

    Get PDF
    El presente artículo muestra la implementación de una unidad en coma flotante (FPU) que actúa como coprocesador dentro de un sistema auto-reconfigurable dinámicamente. La FPU tiene capacidad para resolver operaciones básicas como la suma, la resta, el producto, el cociente, la raíz cuadrada, la inversa y el cuadrado. Además, dispone de un registro en el que se almacena el último resultado obtenido con la intención de utilizarlo como operador en el siguiente cálculo, de modo que se reducen los accesos a los buses de comunicación en la resolución de las operaciones matemáticas. El diseño emplea Microblaze como microprocesador del sistema y su implementación se ha realizado sobre una FPGA Spartan 3 de bajo coste. El artículo muestra resultados experimentales en relación al área total ocupada, así como los tiempos de ejecución obtenidos con un ejemplo particular basado en un algoritmo de CORDIC resuelto en coma flotante.Peer ReviewedPostprint (author’s final draft

    Co-diseño hardware-software de una unidad en coma flotante para microprocesador de 32 bits

    No full text
    El uso de números en coma flotante es muy habitual en la programación software para la resolución de todo tipo de algoritmos. Dada la particular forma de codificar valores en este formato, definida en la norma IEEE 754, realizar operaciones básicas requiere de librerías software específicas y tiempos de proceso considerables para su ejecución. El presente proyecto aporta una solución hardware para la resolución de operaciones aritméticas de números expresados en coma flotante de simple precisión (32 bits). Las operaciones que se realizan son: suma, resta, producto, división, inversa y raíz cuadrada junto con las trigonométricas: seno, coseno y tangente. Estas unidades aritméticas son conocidas como ‘Float Point Unit’(FPU). El diseño de la arquitectura interna de la FPU se describe mediante un lenguaje de descripción hardware (VHDL), de forma modular y con la particularidad de que puede implementarse toda o, únicamente, el bloque que resuelve la operación deseada. La FPU se implementa en una FPGA junto con un sistema basado en microprocesador Microblaze (Xilinx) y bus OPB (IBM), mediante el que se comunican ambos elementos dando lugar a un sistema embebido. De forma complementaria se diseñan la interface y el driver necesarios para la transferencia de información a través del bus de comunicaciones. El conjunto procesa algoritmos de forma que la resolución de operaciones en coma flotante se realiza transfiriendo los datos y la operación a la FPU, que tras un procesado de cálculo retorna el resultado al microprocesador. Una vez puesto el sistema en funcionamiento se mide el tiempo (en ciclos de reloj) que se precisa para resolver cada operación, considerando el tiempo necesario para el acceso al bus OPB. Se compara el tiempo necesario para resolver dichas operaciones por software y con la FPU que el procesador incorpora y se observa la mejora obtenida en cada caso. También se desarrollan dos algoritmos que permiten comprobar la fiabilidad de la FPU, comparando los resultados obtenidos mediante una ejecución puramente software e incorporando la FPU diseñada

    Co-diseño hardware-software de una unidad en coma flotante para microprocesador de 32 bits

    No full text
    El uso de números en coma flotante es muy habitual en la programación software para la resolución de todo tipo de algoritmos. Dada la particular forma de codificar valores en este formato, definida en la norma IEEE 754, realizar operaciones básicas requiere de librerías software específicas y tiempos de proceso considerables para su ejecución. El presente proyecto aporta una solución hardware para la resolución de operaciones aritméticas de números expresados en coma flotante de simple precisión (32 bits). Las operaciones que se realizan son: suma, resta, producto, división, inversa y raíz cuadrada junto con las trigonométricas: seno, coseno y tangente. Estas unidades aritméticas son conocidas como ‘Float Point Unit’(FPU). El diseño de la arquitectura interna de la FPU se describe mediante un lenguaje de descripción hardware (VHDL), de forma modular y con la particularidad de que puede implementarse toda o, únicamente, el bloque que resuelve la operación deseada. La FPU se implementa en una FPGA junto con un sistema basado en microprocesador Microblaze (Xilinx) y bus OPB (IBM), mediante el que se comunican ambos elementos dando lugar a un sistema embebido. De forma complementaria se diseñan la interface y el driver necesarios para la transferencia de información a través del bus de comunicaciones. El conjunto procesa algoritmos de forma que la resolución de operaciones en coma flotante se realiza transfiriendo los datos y la operación a la FPU, que tras un procesado de cálculo retorna el resultado al microprocesador. Una vez puesto el sistema en funcionamiento se mide el tiempo (en ciclos de reloj) que se precisa para resolver cada operación, considerando el tiempo necesario para el acceso al bus OPB. Se compara el tiempo necesario para resolver dichas operaciones por software y con la FPU que el procesador incorpora y se observa la mejora obtenida en cada caso. También se desarrollan dos algoritmos que permiten comprobar la fiabilidad de la FPU, comparando los resultados obtenidos mediante una ejecución puramente software e incorporando la FPU diseñada

    REAU. Examen final (Curs 2016-2017)

    No full text
    Resolve
    corecore